.Dd Dec 28, 2023
.Dt RAX2 1
.Sh NAME
.Nm rax2
.Nd radare base converter
.Sh SYNOPSIS
.Nm rax2
.Op Fl ebBsSvxkKh
.Op [expr] ...
.Sh DESCRIPTION
This command is part of the radare project.
.Pp
This command allows you to convert values between positive and negative integer, float, octal, binary and hexadecimal values.
.Sh OPTIONS
.Bl -tag -width Fl
.It Fl b
Convert from binary string to character (rax2 \-b 01000101)
.It Fl k
Keep the same base as the input data
.It Fl e
Swap endian.
.It Fl F
Read C strings from stdin and output in hexpairs. Useful to load shellcodes
.It Fl i
Dump stdin to C array in stdout (xxd replacement)
.It Fl I
Convert LONG to/from IP ADDRESS
.It Fl l
Append newline to the decoded output for human friendly-ness
.It Fl K
Show randomart key asciiart for values or hexpairs
.It Fl r
Show the same output as the r2's `? 0x804` command.
When combined with -S (-rS) it will print r2 commands to write the actual binary into radare2
.It Fl s
Convert from hex string to character (rax2 \-s 43 4a 50)
.It Fl S
Convert from character to hex string (rax2 \-S C J P)
.It Fl n
Show hexpairs from integer value
.It Fl N
Show hexadecimal C string from integer value
.It Fl u
Convert given value to human readable units format
.It Fl v
Show program version
.It Fl x
Convert a string into a hash
.It Fl h
Show usage help message
.It Fl o
Convert from octal string to char (rax2 -o 162 62)
.El
.Sh USAGE
.Pp
Force output mode (numeric base)
.Pp
  =f    floating point
  =2    binary
  =3    ternary
  =8    octal
  =10   decimal
  =16   hexadecimal
.Pp
Available variable types are:
.Pp
  int   \->  hex    rax2 10
  hex   \->  int    rax2 0xa
  \-int  \->  hex    rax2 \-77
  \-hex  \->  int    rax2 0xffffffb3
  int   \->  bin    rax2 b30
  bin   \->  int    rax2 1010d
  float \->  hex    rax2 3.33f
  hex   \->  float  rax2 Fx40551ed8
  oct   \->  hex    rax2 35o
  hex   \->  oct    rax2 Ox12 (O is a letter)
  bin   \->  hex    rax2 1100011b
  hex   \->  bin    rax2 Bx63
.Pp
With no arguments, rax2 reads values from stdin. You can pass one or more values
as arguments.
.Pp
  $ rax2 33 0x41 0101b
  0x21
  65
  0x5
.Pp
You can do 'unpack' hexpair encoded strings easily.
.Pp
  $ rax2 \-s 41 42 43
  ABC
.Pp
And it supports some math operations.
.Pp
  $ rax2
  0x5*101b+5
  30
.Pp
It is a very useful tool for scripting, so you can read floating point values, or get the integer offset of a jump or a stack delta when analyzing programs.
.Pp
.Sh SEE ALSO
.Pp
.Xr radare2(1)
.Sh AUTHORS
.Pp
Written by pancake <pancake@nopcode.org>.
